package com.ruoyi.yf.test.http;


import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

import com.ruoyi.yf.test.spider.Passage;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import com.ruoyi.yf.test.http.Constants ;
import com.ruoyi.yf.test.http.HttpClient ;



/**
*
*作者:yellowcong
*日期:2017/11/24
*時間:9:53:03
*描述:
*/
public class WebUtils {

    /**
     * 获取https://www.yite.cc/ 这个网站 
     * 小说主页面的地址 
     * 比如：
     * https://www.yite.cc/book/chaojixiulianxitong/
     * https://www.yite.cc/book/jiaojiaoshiniang/
     * 等。。。
     * @param url
     * @return
     * @throws Exception 
     */
    public static BlockingQueue<String> getPageInfo(String url) throws Exception{

        //获取路径
        String htmlStr = HttpClient.get(Constants.HOME_URL);

        //将解析的html转化为
        Document homeDoc = Jsoup.parse(htmlStr);

        //获取到所有的链接
        Element element = homeDoc.getElementById("list");

        //获取所有的章节信息
        Elements pages = element.getElementsByTag("a");

        System.out.println(pages.size());
        //创建一个队列
        BlockingQueue<String> queue = new ArrayBlockingQueue<String>(pages.size());
        for(int i=0;i<pages.size();i++) {
            Element node = pages.get(i);
            String hrefStr = Constants.HOME_URL+node.attr("href");
            String hrefContent = node.html();
            System.out.printf("%s-->%s\r\n",hrefStr,hrefContent);

            queue.put(hrefStr);
        }
        return queue;
    }

    /**
     * 获取到每一篇
     * @param url
     * @return
     */
    public static Passage getPageData(String url) {
        //获取路径
        String htmlStr = HttpClient.get(url);

        //将解析的html转化为
        Document homeDoc = Jsoup.parse(htmlStr);

        Element content = homeDoc.getElementById("content");

        //内容
        String pageContent = content.text();

        //标题
        String title = homeDoc.getElementById("txtbox").getElementsByTag("h1").get(0).text();

        //写数据
        return new Passage(title,pageContent);
    }

}